home *** CD-ROM | disk | FTP | other *** search
/ Shareworld 8 / Shareworld 8 (Disk 1 of 2).adf / SW8a / C.Blitztified / C.Blitztified (.txt)
Magnetic Pages Article  |  1997-05-11  |  49KB  |  320 lines

  1. MPARTICLE
  2. 81D2#
  3. UU=Os
  4. 81D2#
  5. E6|>x
  6. >DR|&}
  7. F$f'vGF"'`
  8. FtgwvE
  9. P*bn"n@
  10. &R"d`
  11. &w&T`
  12. fd$P&
  13. dd$`%
  14. "d`F"
  15. tF&W"TPG"
  16. F    aVX
  17. F    aVX
  18. K>                       
  19. [35mGetting True ILBMInfo Results
  20. LWelcome  to another Blitztified, and a rather mixed bag it is this time too.LTo  start  off  with  we've  a function to examine IFF picture files that (ILthink) gives true ILBMViewMode results. Blitz users who have tried to detectLHAM or EHB pictures using Acid's ILBMInfo followed by ILBMViewMode will knowLit  doesn't  work.  (Attempting  to save HAM or EHB pictures with Blitz alsoLdoesn't  work  as  no  "CAMG"  chunk,  which holds the HAM and EHB flags, isLincluded  with the saved picture. Can anyone help with this?) This function,@by examining the start of the picture file, seems to do the job.
  21. 7; This function returns a correct ILBMViewMode. Meaning7; it correctly detects HAM and EHB pictures. It returns1; -1 if it doesn't find the file. Note it doesn't6; check if the file really is an ILBM IFF picture. Use4; another method to check for that. LoadPalette, for9; instance, will generate an error if a file isn't an IFF-; picture so that's one method you could use.%Function.l TrueViewMode{ILBMPicFile$}' fiLen.l=Exists(ILBMPicFile$):mode.l=-1     If fiLen*  ILBMInfo(ILBMPicFile$):mode=ILBMViewMode
  22.   fiCount.l=0
  23.   If ReadFile(0,ILBMPicFile$)
  24.    FileInput 06   While fiCount<fiLen AND b$<>"CAMG" AND fiCount<5000*    a$=Inkey$:b$=Right$(b$+a$,4):fiCount+1
  25.    Wend
  26.    If b$="CAMG"
  27.     c$=Inkey$(8)
  28.    EndIf
  29.   EndIf
  30.   CloseFile 0
  31.   DefaultInput
  32.  EndIf
  33.  If b$="CAMG",  mode=(mode OR (Cvl(Mid$(c$,5)) AND $8da6))
  34.  EndIf
  35.  Function Return mode
  36. End Function)                                   ------
  37. 8                              
  38. [35mMore Polygon Fun
  39. LNow follows a little program that shows you how to use strings for storing aLlist  of  polygons with differing numbers of points. Since the last issue ofLSW  (which  contained a polygon example too) I've sussed out fully how BlitzLuses  polygons,  and  it's all rather simple. All the polygon commands need,Lafter  you  tell  them  the  number  of points they have, is an address thatLpoints  to  a  string  of  bytes  containing the x,y coordinates as two-byteLwords. Thus an array of strings is a simple way to store and access polygonsLwith differing numbers of points, hence this not very exciting demo. (NobodyLhad  anything to say about last issue's Polygon program. I wonder if this'll
  40. prove any different?)
  41. ; PolyDemo 2.00
  42. .; By Carl Read - Public Domain - 6th May 1997.
  43. :; This is just a little BlitzII program to show how to use5; strings to store polygons with different numbers of    ; points.
  44. '; Any comments about this program to...
  45. ; Carl Read
  46. ; CyberCraft
  47. ; PO Box 14032    ; Mayfair
  48. ; Hastings 4201
  49. ; NEW ZEALAND
  50. #pts=800
  51. #wid=640
  52. #ht=400
  53. WBStartup:NoCli'BitMap 0,#wid,#ht,1:BitMap 1,#wid,#ht,1&Screen 0,0,0,#wid,#ht,1,$8004,"",2,1,0
  54. Use BitMap 0:Cls:BitMapOutput 06Dim p$(#pts) ; String array to hold the x,y points in.2Dim p(#pts)  ; Number of points per array element.
  55. ; Create polygons.
  56. points=3
  57. For n=0 To #pts
  58.  Locate 2,2:Print #pts-n,"  "
  59.  If n=0
  60.   ; Create first polygon.
  61.   For m=1 To points
  62.    x=Int(Rnd(#wid))
  63.    y=Int(Rnd(#ht))
  64.    p$(n)+Mki$(x)+Mki$(y)
  65.   Next
  66.  Else<  ; Use previous polygon string as the basis of the new one.;  ; Each previous point will be moved randomly a little bit;  ; and the number of points may be increased or decreased,=  ; with a bias in favour of increasing the number of points.
  67.   x=Int(Rnd(#wid))
  68.   y=Int(Rnd(#ht)),  p$=Left$(p$(n-1)+Mki$(x)+Mki$(y),points*4)
  69.   For m=1 To points*4 Step 4$   x=Cvi(Mid$(p$,m))+Int(Rnd(64))-32
  70.    If x<0 Then x=0
  71.    If x>=#wid Then x=#wid-1&   y=Cvi(Mid$(p$,m+2))+Int(Rnd(40))-20
  72.    If y<0 Then y=0
  73.    If y>=#ht Then y=#ht-1
  74.    p$(n)+Mki$(x)+Mki$(y)
  75.   Next
  76.  EndIf
  77.  p(n)=points
  78.  If points=3
  79.   points+1
  80.  Else<  ; The maximum number of points is 200.  If you want to use;  ; Polyf for filled polygons, (see below), then reduce the9  ; 200 to 8 or less else you'll most likely get a crash.<  ; This is because the routine doesn't create true polygons:  ; but ones where the edges cross over each other.  Sorry=  ; about this, but I've not enough time to think up a better
  81.   ; routine.
  82.   If points=200
  83.    points-1
  84.   Else
  85.    points+(Int(Rnd(3)))-1
  86.   EndIf
  87.  EndIf
  88. ; Animate polygons.
  89. For n=0 To #pts
  90.  Use BitMap bm:Cls
  91.  Poly p(n),&p$(n),1" ShowBitMap bm:VWait:bm=(bm EOR 1)
  92.     MouseWait
  93. End)                                   ------
  94. 6                                
  95. [35mOne last Tip
  96. LAnyone  sick  of  their  Blitz  menus  being the wrong colour on Workbench 3Lmachines?  Well try adding $200000 to your windows' flags. Yes folks, that'sLall  that's  required  to  give WB3 colours to your menus. In fact everybodyLshould  use  it  as  it has no effect on the earlier Workbenches. (Actually,Lthat's  not  quite  true as it needs to be used with Red When Excited's WB2+Lmenus,  which  give  not  only  the correct colours but also support for theLsystem fonts and so on. See the review of Blitz Support Suit in this issue.)
  97. )                                   ------
  98. @                     
  99. [35mBlitz Support and Where To Get It
  100. LBlitz  support,  from  those  who  gave  us Blitz, leaves a little bit to beLdesired. So for any of you who are pulling your hair out trying to get BlitzLto  do  something  you  know  it should be able to do, but won't do for you,Lhere's  a  list of software which may be of help to you. If you can't sourceLit yourself, except for the commercial products I can supply you with any ofJthis. Just send me some interesting Blitz related stuff on disk in return.
  101. )                                   ------
  102. 4                       "Blitz on the Internet/Comms"
  103. LThose  with  comms/Internet  access  can  no  doubt  find  Blitz  support byLthemselves.  However,  us  lesser  mortals  just have to hope some kind soulLpasses  some  of  the info on to us. (Thanks Andy K. :) Anyway, I've about aLlha-crunched  megabyte  of  such  stuff derived (according to AmiQWK, a WB2+Lfile  reader  for such stuff), from "Blitz Basic Support" and "Alt Sys AmigaLBlitz".  To  find what you need to know from such a mass of text is a prettyLhopeless  task  using AmiQWK, (it having no search option), so it's mainly aLcase  of  reading  through  a  lot  of junk when you first receive these and0saving the odd pearls of wisdom you come across.
  104. )                                   ------
  105. /                             "Blitz Guide v1.3"-                              By Jurgen ValksE       (Freeware:  An AmigaGuide Document.  Released 16th Oct. 1994.)
  106. 3                        E-Mail:    j.valks@hsbos.nl
  107. D        Realmail:  Jurgen Valks, Kerkeind 8a, 5293 AB  Gemonde (NB),.                              THE NETHERLANDS.
  108. LThis  AmigaGuide  document  contains  a  well-ordered  guide to a lot of theLcommands added to Blitz by Acid and others after its initial release, thoughLthe  version  I  have  doesn't  contain  any info on commands after BUM7 wasLreleased.  You can get at the individual commands through a library list, anLalphabetical  list  or  via the commands added with each BUM up to number 7.LMissing  I  think is the ability to find them by category, (bitmap commands,Lpacking commands, etc.), but otherwise it's a useful resource. And big too -
  109. the file's over 400k in size.
  110. )                                   ------
  111. .                              "Guide To Blitz"-                               By Neil WrightF     (From F1 Licenceware - UK
  112. 4.99.  Two disks.  Released Mar. 1996.)
  113. I  Realmail:  Neil Wright, (Blitz User Group UK), 39 Riding Dene, Mickley,7                     Northumberland, NE43 7DL, ENGLAND.
  114. LThis two disk package consist of one disk of AmigaGuide documents containingLdetailed descriptions of most of the Acid commands, while the other containsLexamples,  (over  400  of  them  and all in Blitz code), of how to use thoseLcommands.  There's  also  an  introduction  to  coding  in  Blitz plus a fewLprograms for you to examine. Very useful to Blitz users with only the later,Lexample-less,  smaller  manual  and  probably  of quite a bit of use to mostLBlitz  users  in  general.  Reviewed  fully  in ShareWorld #7. (The previous
  115. issue.)
  116. )                                   ------
  117. 0                           "Blitz Support Suite"0                            By Red When Excited.A          (A Commercial product - price unknown.  On four disks.)
  118. 9                  Email:     redwhen@ldngedge.demon.co.uk
  119. >              Webpage:   http://www.aber.ac.uk/~ngh94/rwe.html
  120. H   Realmail:  Red When Excited Ltd, 2 Slimmons Drive, St. Albans, Herts,.                             AL4 9AS, ENGLAND.
  121. LThis contains a lot of previous commands already released on the BUMs by RedLWhen  Excited,  plus  some  new  ones, AmigaGuide docs to them, some supportLprograms  and their latest version of SuperTed and the Red Debugger. See theLfull  review  of Blitz Support Suite in the Reviews section of this issue of
  122. )                                   ------
  123. ,                               "HelpApp 1.1".                             By Rupert Henson.B          (E-Mail ware:  WB2+ required.  Released 27th Feb. 1995.)
  124. 4                        Email:     rjh@cs.nott.ac.uk
  125. LRealmail:  Mr Rupert Henson, "Regency House", 14 Crown Road, Great Yarmouth,7                     Norfolk, NR30 2JN, UNITED KINGDOM.
  126. L   This is a program written in Blitz which gives info on the flags and tagsLused  by  screens, windows, gadgets, GadTools, ASL requesters and slices. ItLalso  works  both  ways,  meaning  if you enter a value it'll show you whichLflags  are  being  used.  In  the  case of tags, a window on each one can beLopened  which  gives  a bit of info on them. One other useful feature is itsLinsert  hotkey.  After selecting a flag or tag using HelpApp, you can returnLto your Blitz editor and enter the value directly into your program by using
  127. HelpApp's insertion hotkey.L   As HelpApp covers more than is in the Acid manuals it's of obvious use toLall  Blitz  users. For instance, this is where I first found out how to turn on the WB3+ menu colours. Beware#though that there's a few errors in this version of the program. For$example, the hi-res flag for screens#is given as $80000, not $8000 as it
  128. should be.$   Oh yes, and HelpApp adds its name$to the Workbench's `Tools' menu when
  129. put to sleep. How's he do that?"                                  
  130.                ------
  131. 7                     "The BlitzOp Guide v1.0 - 47 tips"-                              By Paul Bowlay.@            (Freeware:  An AmigaGuide Document.  Released 1997.)
  132. 2                         Email:     cat@aic.net.au
  133. 2                         Realmail:  Not telling...
  134. L   This  AmigaGuide  document  offers  47  tips (plus a few more generalisedLones) on how to optimise your Blitz code. Optimise in this case means how toLmake  your Blitz executables smaller, and that's all it means as speed isn'tLconsidered.  That  said, a lot of the tips here would probably speed up your(code a bit too, which is an added bonus.L   Ideas  for optimising are along the lines of using the windows' flags forLactivating  them  instead  of using the Activate command, and with replacingLthe  Acid  commands with library calls. Also, he suggests replacing commandsLwith  machine  code  quite  a bit, which is all very well if you're familiar+with it, but a bit worrisome if you're not.L   With  this  I  noticed  one  mild  oversight  regarding the use of the IfLcommand.  The  suggestion is to replace "If a=1 Then..." with "If a Then..."Lon  the grounds that the condition will return true if it's a "1" but not ifLit's  a  "0".  In  actual fact true will be returned as long as any non-zeroLvalue  is used, so you can use this test for any number and not just for "1"
  135. as is implied in the text.L   On  reading  BlitzOp Guide I had the obvious thought that a program couldLbe  written  that  would take a Blitz listing and automatically optimise it.LAnybody  willing to have a shot at it? Or is this another thing I'll have to
  136. do myself...
  137. )                                   ------
  138. 5                                 
  139. [35mFinally...
  140. LAnd  that's  about  it  for this issue. However, for those interested in theLfuture  of Blitz, I received the following note from Simon Armstrong of Acid!Software when I received BUM10...
  141.     "Hi Carl,
  142. LFeel  free  to  pass  copies  on to anyone who wants them. Sad to say, we'veFcrossed the big divide and struggling for our lives on the other side.
  143. Ciao,
  144. Simon."
  145. LAs  BUM10  includes a full working copy of v1.1 of Blitz, I guess this meansLthe  language,  if  not  the paper manuals, is now freeware. (I've also beenLtold  it  appeared  on  a  coverdisk  a while back, which means it was goingLpretty  cheap  then, if not totally free.) I guess the above also means thatLMark  Sibly  and  Simon Armstrong are now PC persons, which is a bit sad butLunderstandable  in  today's  Amiga  market.  However, if the Amiga does makeLanything of a comeback and they bomb out in the PC world, who knows, perhaps/they'll come back - and finally finish Blitz...
  146. Ciao,
  147. Carl.
  148. )                                   ~~~~~~
  149. By Carl Read: Page 1 of 19
  150. SW8a:SW8a/I.General
  151. SW8a:SW8a/I.Columns
  152. SW8a:SW8a/I.ShareWorld
  153. SW8a:SW8a/I.Reviews
  154. SW8b:SW8b/I.OtherWorlds
  155. SW8b:SW8b/I.Adverts
  156. SW8b:SW8b/I.Gallery
  157. SW8a:SW8a/Help
  158. By Carl Read: Page 2 of 19
  159. SW8a:SW8a/I.General
  160. SW8a:SW8a/I.Columns
  161. SW8a:SW8a/I.ShareWorld
  162. SW8a:SW8a/I.Reviews
  163. SW8b:SW8b/I.OtherWorlds
  164. SW8b:SW8b/I.Adverts
  165. SW8b:SW8b/I.Gallery
  166. SW8a:SW8a/Help
  167. By Carl Read: Page 3 of 19
  168. SW8a:SW8a/I.General
  169. SW8a:SW8a/I.Columns
  170. SW8a:SW8a/I.ShareWorld
  171. SW8a:SW8a/I.Reviews
  172. SW8b:SW8b/I.OtherWorlds
  173. SW8b:SW8b/I.Adverts
  174. SW8b:SW8b/I.Gallery
  175. SW8a:SW8a/Help
  176. By Carl Read: Page 4 of 19
  177. SW8a:SW8a/I.General
  178. SW8a:SW8a/I.Columns
  179. SW8a:SW8a/I.ShareWorld
  180. SW8a:SW8a/I.Reviews
  181. SW8b:SW8b/I.OtherWorlds
  182. SW8b:SW8b/I.Adverts
  183. SW8b:SW8b/I.Gallery
  184. SW8a:SW8a/Help
  185. By Carl Read: Page 5 of 19
  186. SW8a:SW8a/I.General
  187. SW8a:SW8a/I.Columns
  188. SW8a:SW8a/I.ShareWorld
  189. SW8a:SW8a/I.Reviews
  190. SW8b:SW8b/I.OtherWorlds
  191. SW8b:SW8b/I.Adverts
  192. SW8b:SW8b/I.Gallery
  193. SW8a:SW8a/Help
  194. By Carl Read: Page 6 of 19
  195. SW8a:SW8a/I.General
  196. SW8a:SW8a/I.Columns
  197. SW8a:SW8a/I.ShareWorld
  198. SW8a:SW8a/I.Reviews
  199. SW8b:SW8b/I.OtherWorlds
  200. SW8b:SW8b/I.Adverts
  201. SW8b:SW8b/I.Gallery
  202. SW8a:SW8a/Help
  203. By Carl Read: Page 7 of 19
  204. SW8a:SW8a/I.General
  205. SW8a:SW8a/I.Columns
  206. SW8a:SW8a/I.ShareWorld
  207. SW8a:SW8a/I.Reviews
  208. SW8b:SW8b/I.OtherWorlds
  209. SW8b:SW8b/I.Adverts
  210. SW8b:SW8b/I.Gallery
  211. SW8a:SW8a/Help
  212. By Carl Read: Page 8 of 19
  213. SW8a:SW8a/I.General
  214. SW8a:SW8a/I.Columns
  215. SW8a:SW8a/I.ShareWorld
  216. SW8a:SW8a/I.Reviews
  217. SW8b:SW8b/I.OtherWorlds
  218. SW8b:SW8b/I.Adverts
  219. SW8b:SW8b/I.Gallery
  220. SW8a:SW8a/Help
  221. By Carl Read: Page 9 of 19
  222. SW8a:SW8a/I.General
  223. SW8a:SW8a/I.Columns
  224. SW8a:SW8a/I.ShareWorld
  225. SW8a:SW8a/I.Reviews
  226. SW8b:SW8b/I.OtherWorlds
  227. SW8b:SW8b/I.Adverts
  228. SW8b:SW8b/I.Gallery
  229. SW8a:SW8a/Help
  230. By Carl Read: Page 10 of 19
  231. SW8a:SW8a/I.General
  232. SW8a:SW8a/I.Columns
  233. SW8a:SW8a/I.ShareWorld
  234. SW8a:SW8a/I.Reviews
  235. SW8b:SW8b/I.OtherWorlds
  236. SW8b:SW8b/I.Adverts
  237. SW8b:SW8b/I.Gallery
  238. SW8a:SW8a/Help
  239. By Carl Read: Page 11 of 19
  240. SW8a:SW8a/I.General
  241. SW8a:SW8a/I.Columns
  242. SW8a:SW8a/I.ShareWorld
  243. SW8a:SW8a/I.Reviews
  244. SW8b:SW8b/I.OtherWorlds
  245. SW8b:SW8b/I.Adverts
  246. SW8b:SW8b/I.Gallery
  247. SW8a:SW8a/Help
  248. By Carl Read: Page 12 of 19
  249. SW8a:SW8a/I.General
  250. SW8a:SW8a/I.Columns
  251. SW8a:SW8a/I.ShareWorld
  252. SW8a:SW8a/I.Reviews
  253. SW8b:SW8b/I.OtherWorlds
  254. SW8b:SW8b/I.Adverts
  255. SW8b:SW8b/I.Gallery
  256. SW8a:SW8a/Help
  257. By Carl Read: Page 13 of 19
  258. SW8a:SW8a/I.General
  259. SW8a:SW8a/I.Columns
  260. SW8a:SW8a/I.ShareWorld
  261. SW8a:SW8a/I.Reviews
  262. SW8b:SW8b/I.OtherWorlds
  263. SW8b:SW8b/I.Adverts
  264. SW8b:SW8b/I.Gallery
  265. SW8a:SW8a/Help
  266. By Carl Read: Page 14 of 19
  267. SW8a:SW8a/I.General
  268. SW8a:SW8a/I.Columns
  269. SW8a:SW8a/I.ShareWorld
  270. SW8a:SW8a/I.Reviews
  271. SW8b:SW8b/I.OtherWorlds
  272. SW8b:SW8b/I.Adverts
  273. SW8b:SW8b/I.Gallery
  274. SW8a:SW8a/Help
  275. By Carl Read: Page 15 of 19
  276. SW8a:SW8a/I.General
  277. SW8a:SW8a/I.Columns
  278. SW8a:SW8a/I.ShareWorld
  279. SW8a:SW8a/I.Reviews
  280. SW8b:SW8b/I.OtherWorlds
  281. SW8b:SW8b/I.Adverts
  282. SW8b:SW8b/I.Gallery
  283. SW8a:SW8a/Help
  284. By Carl Read: Page 16 of 19
  285. SW8a:SW8a/I.General
  286. SW8a:SW8a/I.Columns
  287. SW8a:SW8a/I.ShareWorld
  288. SW8a:SW8a/I.Reviews
  289. SW8b:SW8b/I.OtherWorlds
  290. SW8b:SW8b/I.Adverts
  291. SW8b:SW8b/I.Gallery
  292. SW8a:SW8a/Help
  293. By Carl Read: Page 17 of 19
  294. SW8a:SW8a/I.General
  295. SW8a:SW8a/I.Columns
  296. SW8a:SW8a/I.ShareWorld
  297. SW8a:SW8a/I.Reviews
  298. SW8b:SW8b/I.OtherWorlds
  299. SW8b:SW8b/I.Adverts
  300. SW8b:SW8b/I.Gallery
  301. SW8a:SW8a/Help
  302. By Carl Read: Page 18 of 19
  303. SW8a:SW8a/I.General
  304. SW8a:SW8a/I.Columns
  305. SW8a:SW8a/I.ShareWorld
  306. SW8a:SW8a/I.Reviews
  307. SW8b:SW8b/I.OtherWorlds
  308. SW8b:SW8b/I.Adverts
  309. SW8b:SW8b/I.Gallery
  310. SW8a:SW8a/Help
  311. By Carl Read: Page 19 of 19
  312. SW8a:SW8a/I.General
  313. SW8a:SW8a/I.Columns
  314. SW8a:SW8a/I.ShareWorld
  315. SW8a:SW8a/I.Reviews
  316. SW8b:SW8b/I.OtherWorlds
  317. SW8b:SW8b/I.Adverts
  318. SW8b:SW8b/I.Gallery
  319. SW8a:SW8a/Help
  320.